Binaryen-related micro optimizations#8257
Binaryen-related micro optimizations#8257stevenwdv wants to merge 8 commits intoWebAssembly:mainfrom
Conversation
It had negligible performance impact in the tested benchmark
|
Meta-comment: @kripken can correct me if I'm wrong here, but if your command line is |
|
@dschuff The full command that the compiler used actually also had |
This should shave a couple seconds off
wasm-emscripten-finalize, which is really slow for me (more with source maps & stack overflow detection enabled, which I didn't look at here (yet)). Didn't make as much of a different as I'd hoped, but anyway.third_party/llvm-project/dwarf2yaml.cpp, since it comes from LLVM. I did also submitdwarf2yaml.cppoptimizations llvm/llvm-project#179048 but their version is very different, and not only in theXXX BINARYENareas.locationUpdater.has*()usages is correct. It seems that the result is almost identical. If the subtle difference is relevant, I can merge the two functions in a different way, wrapping inoptionalbut also allowing0if the old location was found but the new wasn't.Y.AbbrevDecls.reserveusing the loop is a bit overkill since I think the performace impact was minimal, I can remove it if you want.When built with
-DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_MIMALLOC=ON -DBYN_ENABLE_LTO=ON -DBUILD_STATIC_LIB=ON -DBYN_ENABLE_ASSERTIONS=OFF:Pre: 19s
Post: 16.5s